package com.xbongbong.paas.connection.service;

import com.xbongbong.paas.connection.pojo.dto.CloudCodeLowCodeConfigListDTO;
import com.xbongbong.paas.connection.pojo.dto.LowCodeInstallDTO;
import com.xbongbong.paas.connection.pojo.vo.CloudCodeLowCodeIsDeveloperVO;
import com.xbongbong.paas.connection.pojo.vo.CompanyInfoVO;
import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.paas.toolbox.wrap.BaseVO;
import com.xbongbong.pro.developer.pojo.dto.DeveloperListDTO;
import com.xbongbong.pro.lowcodeconfig.pojo.vo.LowCodeConfigListVO;

/**
 * 云扣与pro的数据交互
 * @author 李少杰
 * @version v1.0.0
 * @date 2022/2/11 11:10
 */
public interface ICloudCodeService {

    /**
     * 获取公司信息
     * @return
     * @throws XbbException
     */
    CompanyInfoVO companyInfo(String corpid) throws XbbException;

    /**
     * 获取表单低代码配置
     * @param cloudCodeLowCodeConfigListDTO
     * @return
     */
    LowCodeConfigListVO lowCodeConfigList(CloudCodeLowCodeConfigListDTO cloudCodeLowCodeConfigListDTO) throws XbbException;

    /**
     * 低代码安装
     * @param lowCodeInstallDTO
     * @return
     * @throws XbbException
     */
    BaseVO lowCodeInstall(LowCodeInstallDTO lowCodeInstallDTO) throws XbbException;

    /**
     * 回退低代码
     * @param cloudCodeLowCodeConfigListDTO
     * @return
     * @throws XbbException
     */
    BaseVO backLowCode(CloudCodeLowCodeConfigListDTO cloudCodeLowCodeConfigListDTO) throws XbbException;

    /**
     * 验证是否为开发者
     * @param developerListDTO
     * @return CloudCodeLowCodeIsDeveloperVO
     * @throws XbbException
     * @date: 2022/6/28
     */
    CloudCodeLowCodeIsDeveloperVO isDeveloper(DeveloperListDTO developerListDTO) throws XbbException;

}
